﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Tibet.Entidades;

namespace Tibet.Logica.Comandos
{
    public abstract class Comando
    {

        protected Cliente _cliente;

        public Cliente Cliente
        {
            get { return _cliente; }
            set { _cliente = value; }
        }
        protected Credencial _credencial;
        protected String _email;
        protected String _mensaje;
        protected String _usuario;
        protected StringBuilder _msj;
        protected Usuario _usuario1;
        protected String _nombreViejo;
        protected String _nombreUsuario;
        private String _nombrecliente;
        private String _clave;
        private Credencial _cred;
        private Rol _rol;

        public Rol Rol
        {
            get { return _rol; }
            set { _rol = value; }
        }


        public Credencial Cred
        {
            get { return _cred; }
            set { _cred = value; }
        }


        public String Clave
        {
            get { return _clave; }
            set { _clave = value; }
        }


        protected String Nombrecliente
        {
            get { return _nombrecliente; }
            set { _nombrecliente = value; }
        }

        protected String NombreViejo
        {
            get { return _nombreViejo; }
            set { _nombreViejo = value; }
        }

        public Usuario Usuario1
        {
            get { return _usuario1; }
            set { _usuario1 = value; }
        }


        private List<Entidad> _listaEntidad;
        //Para poder retornar una lista de cualquier objeto sin cambiar el metodo Ejecutar()
        public List<Entidad> ListaEntidad
        {
            get { return _listaEntidad; }
            set { _listaEntidad = value; }
        }
        //Para poder retornar cualquier objeto sin cambiar el metodo Ejecutar()
        private Entidad _entidad;

        public Entidad Entidad
        {
            get { return _entidad; }
            set { _entidad = value; }
        }
        //Para poder buscar por id sin cambiar el metodo Ejecutar()
        private int _id;

        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }

        //Para poder retornar un bool sin cambiar el metodo Ejecutar()
        protected bool _flag;

        public bool Flag
        {
            get { return _flag; }
            set { _flag = value; }
        }

        protected String _cadena;

        public String Cadena
        {
            get { return _cadena; }
            set { _cadena = value; }
        }

        protected String _tipo;

        public String Tipo
        {
            get { return _tipo; }
            set { _tipo = value; }
        }

        public abstract void Ejecutar();



    }
}
